Dictionaries 部分跳过
Divide
传入一组商数与一组除数,返回字典,键为每个商数,值为表示每个商数能整除的除数的列表
1 | def divide(quotients, divisors): |
注意用表达式建立列表与字典的方法
Buying Fruit
实现buy函数,通过给定的水果与价格,用恰好为传入的total_amount的价格购买指定的水果(每种指定水果至少买一次) 用display函数输出所有结果
1 | def buy(required_fruits, prices, total_amount): |
返回条件是fruits为空或钱被花光,且递归时每次都取fruits的首个元素
可以推断递归时对fruits数组进行了切片,每次往后切一个元素
for循环遍历选择每个水果的个数,从至少选一个到最多能选的个数
Cities ADT
以下问题基于建立的该ADT
一个城市由以下参数描述:名称、经度、维度
包括一个构造函数 -
make_city(name, lat, lon):建立一个城市对象,存储其名称、经度、维度
以下选择器 - get_name(city):获取城市名称 -
get_lat(city):获取城市经度 -
get_lon(city):获取城市维度
该抽象数据类型已经在文件中实现,你不需要知道是怎么实现的
Distance
计算并返回两城市的距离
1 | from math import sqrt |
Closer City
比较两个城市离给定经纬度的远近,返回更近的那个城市
1 | def closer_city(lat, lon, city_a, city_b): |
可以将指定的经纬度看作第三个城市并构造这么一个对象 通过上面已经写完的distance函数计算两城市与第三个城市的距离并比较,输出更近的 若相同输出city_b